/**
 * 
 */
package com.block.common.security.service;


import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSONObject;
import com.block.db.entity.AppEncrypt;

import java.util.List;

/**
 * 
 * 请求数据转换
 */
public abstract class ReqDataTransferService {
	/**
	 * 转换请求数据到通用格式
	 * @param appEncrypt
	 * @param paramMap
	 * @param methodName
	 * @return
	 * 2016年12月19日 下午7:20:05
	 */
	public abstract JSONObject transferReqData(AppEncrypt appEncrypt, JSONObject jsonObject, String methodName) throws Exception;
	
	/**
	 * 转换paramArray到【字符串】
	 * @param paramArray
	 * @return
	 * 2016年10月12日 下午6:39:51
	 */
	protected String transferParamArray(String[] paramArray)
	{
		if (paramArray != null) {
            return paramArray[0];
        }
		return null;
	}


	private static List<String> sensitiveWordList = CollUtil.newArrayList("password", "pwdText", "pwdCode", "pinCode", "newPinCode");

	/**
	 * 获取脱敏后的 tranData
	 * @param tranData
	 * @return
	 */
	protected JSONObject getDesensTranData(String tranData){
		JSONObject logJson=JSONObject.parseObject(tranData);
		for (String content: sensitiveWordList){
			if(logJson.containsKey(content)) {
				logJson.put(content, content+":****************");
			}
		}

//		//TODO 改为重写 messageFactory
//		if(logJson.containsKey("password")) {
//			logJson.put("password", "password:****************");
//		}
//		if(logJson.containsKey("pin")) {
//			logJson.put("pin", "pin:****************");
//		}
//		if(logJson.containsKey("pwdText")) {
//			logJson.put("pwdText", "pwdText:****************");
//		}
//		if(logJson.containsKey("pwdText")) {
//			logJson.put("pwdText", "pwdText:****************");
//		}
//		if(logJson.containsKey("pwdText")) {
//			logJson.put("pwdText", "pwdText:****************");
//		}

		return logJson;

	}
}
